package cn.buk.qms.service;

import cn.buk.common.JsonResult;
import cn.buk.common.sc.CommonSearchCriteria;
import cn.buk.tms.entity.misc.OperationLog;
import cn.buk.tms.sc.SearchFlightOrderCriteria;
import cn.buk.tms.dto.AttractionInfoDto;
import cn.buk.tms.dto.AttractionPriceDto;
import cn.buk.tms.dto.response.TicketOrderResponseDto;

import java.util.Date;
import java.util.List;

/**
 * 景点
 * @author yfdai
 */
public interface AttractionService {

    JsonResult saveAttractionInfo(final int userId, AttractionInfoDto dto);

    AttractionInfoDto getAttractionInfoById(int enterpriseId, int id);

    List<AttractionInfoDto> searchAttractions(int userId, CommonSearchCriteria sc);

    /**
     * 保存一段时间景点价格
     *
     * @param userId       用户id
     * @param attractionId 景点id
     * @param startDate    开始日期
     * @param endDate      截至日期
     * @param price        价格
     * @param remark       备注
     * @return
     */
    JsonResult saveAttractionPrice(int userId, int attractionId, Date startDate, Date endDate, int price, String remark);

    /**
     * 查找景点价格
     *
     * @param userId
     * @param attractionId
     * @return
     */
    List<AttractionPriceDto> searchAttractionPrice(int userId, int attractionId, CommonSearchCriteria sc);

    JsonResult deleteAttractionPrice(int userId, int attractionId, int priceId);

    List<TicketOrderResponseDto> searchTicketOrders(int userId, SearchFlightOrderCriteria sc);

    TicketOrderResponseDto getTicketOrder(int userId, int orderId);

    List<OperationLog> searchTicketOrderHistory(int userId, int orderId);

    JsonResult cancelTicketOrder(int userId, int orderId, String remark);

    JsonResult processTicketOrder(int userId, int orderId, String remark);

    JsonResult finishTicketOrder(int userId, int orderId, String remark);
}
